package com.company;
/**
 * FileInputStream
 * 该流用于从文件读取数据，它的对象可以用关键字 new 来创建。
 * 有多种构造方法可用来创建对象。
 * 可以使用字符串类型的文件名来创建一个输入流对象来读取文件：
 */
import java.io.*;

public class fileStreamTest {
    public static void main(String[] args) {
        try {
            byte[]  bWrite= { 11, 21, 3, 40, 5 };
            OutputStream os = new FileOutputStream("test.txt");
            for (int x = 0; x < bWrite.length; x++) {
                /**
                 * 	public void write(int w)throws IOException{}
                 * 这个方法把指定的字节写到输出流中。
                 */
                os.write(bWrite[x]); // writes the bytes
            }
            /**
             * 	public void close() throws IOException{}
             * 关闭此文件输入流并释放与此流有关的所有系统资源。抛出IOException异常。
             */
            os.close();
            /**
             * FileOutputStream
             * 该类用来创建一个文件并向文件中写数据。
             * 如果该流在打开文件进行输出前，目标文件不存在，那么该流会创建该文件。
             * 有两个构造方法可以用来创建 FileOutputStream 对象。
             * 使用字符串类型的文件名来创建一个输出流对象：
             * OutputStream f = new FileOutputStream("C:/java/hello")
             * 也可以使用一个文件对象来创建一个输出流来写文件。
             * 我们首先得使用File()方法来创建一个文件对象：
             * File f = new File("C:/java/hello");
             * OutputStream f = new FileOutputStream(f);
             */
            InputStream is = new FileInputStream("test.txt");
            /**
             * 	public int available() throws IOException{}
             * 返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取的字节数。
             * 返回一个整数值。
             */
            int size = is.available();

            for (int i = 0; i < size; i++) {
                System.out.print((char) is.read() + "  ");
            }
            is.close();
        } catch (IOException e) {
            System.out.print("Exception");
        }
    }
}
